package br.com.edumobi.activities;

import android.content.Intent;
import android.os.Bundle;

import java.util.List;

import br.com.edumobi.R;
import br.com.edumobi.dados.modelos.Classificacao;
import br.com.edumobi.dados.modelos.Simulado;
import br.com.edumobi.excecoes.ExcecaoConsultaMalsucedida;
import br.com.edumobi.fragments.LauncherQuestoesFragment;
import br.com.edumobi.utils.Dates;

public class LauncherQuestoesActivity extends GenericaActivity implements LauncherQuestoesFragment.AcoesLauncherQuestoesFragment {

    public static final String EXTRA_CLASSIFICACAO = "EXTRA_CLASSIFICACAO";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_launcher_questoes);
    }

    @Override
    public void abrirModoEstudo(boolean usarAssitente) {
        Intent intent = new Intent(this, MEQuestaoActivity.class);
        intent.putExtra(MEQuestaoActivity.EXTRA_CLASSIFICACAO, getIntent().getSerializableExtra(EXTRA_CLASSIFICACAO));
        intent.putExtra(MEQuestaoActivity.EXTRA_USO_ASSISTENTE, usarAssitente);
        startActivity(intent);
        finish();
    }

    @Override
    public void abrirModoSimulado() {
        Intent intent = new Intent(this, SimuladosActivity.class);
        intent.putExtra(SimuladosActivity.EXTRA_CLASSIFICACAO, getIntent().getSerializableExtra(EXTRA_CLASSIFICACAO));
        startActivity(intent);
        finish();
    }

    @Override
    public int obterQuantidadeDeSimuladosDaClassificacao() {
        return local.consultarSimuladosPorClassificacao((Classificacao) getIntent().getSerializableExtra(EXTRA_CLASSIFICACAO)).size();
    }

    @Override
    public boolean atualizarSimuladosDaClassificacao() {
        try {
            List<Simulado> simulados = nuvem.consultarSimulados((Classificacao) getIntent().getSerializableExtra(EXTRA_CLASSIFICACAO), obterPreferencesAluno());

            for (Simulado simulado : simulados) {
                if (local.consultarSimuladoPorId(simulado.id) == null) {
                    local.inserirSimulado(simulado);
                } else {
                    local.alterarSimulado(simulado);
                }
            }

            salvarPreferencesDataAtualizacao(Dates.agora());

            return true;
        } catch (ExcecaoConsultaMalsucedida excecao) {
            return false;
        }
    }
}
